import java.util.Scanner;

public class Main {
    /*给你一个二进制数组 nums ，你需要从中删掉一个元素。
    请你在删掉元素的结果数组中，返回最长的且只包含 1 的非空子数组的长度。
    如果不存在这样的子数组，请返回 0 。*/
    public static int seekcoordinate(int[] nums) {
        int n=nums.length;
        int left=0;
        int result=0;
        int count=0;
        for(int right=0;right<n;right++){
            int temp=nums[right];
            if(temp==0)count++;
            while(count>1){
                int temp2=nums[left];
                left++;
                if(temp2==0&&count>1)count--;
            }
            result=Math.max(result,right-left);
        }
        return result;
    }
    public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       int n=sc.nextInt();
       int[]nums=new int[n];
       for(int i=0;i<n;i++){
           nums[i]=sc.nextInt();
       }
       int length=seekcoordinate(nums);
       System.out.println(length);
       sc.close();
    }
}